"""
Regras de pontuacao no bolao.
"""

def resultado(p):
  "Determina o resultado do placar ou palpite p."
  if p[0] > p[1]:
     return "time 1 ganha"
  elif p[0] == p[1]:
     return "empate"
  return "time 2 ganha"

def num_pontos(placar, palpite):
  """
  Calcula o numero de pontos de um palpite, 
  com base no placar do jogo.
  """
  if resultado(placar) != resultado(palpite):
     return 0

  if placar == palpite:
     return 6

  if placar[0] == palpite[0] or placar[1] == palpite[1]:
     return 3

  # palpite so acertou o resultado
  return 2 


if __name__ == '__main__':
  # verifica num_pontos
  assert num_pontos((3,2),(3,2)) == 6
  assert num_pontos((3,2),(3,1)) == 3
  assert num_pontos((3,2),(4,2)) == 3
  assert num_pontos((3,2),(4,3)) == 2
  assert num_pontos((3,2),(5,4)) == 2
  assert num_pontos((3,2),(2,2)) == 0
  assert num_pontos((3,2),(2,3)) == 0
  assert num_pontos((3,2),(3,4)) == 0
  assert num_pontos((3,2),(1,2)) == 0
  assert num_pontos((3,2),(1,4)) == 0
  assert num_pontos((3,2),(1,4)) == 0